# -*- coding: utf-8 -*-

from django.db import models
import cups
import commands

def impressoras_do_sistema():
    c = cups.Connection()
    lista = c.getPrinters()
    
    impressoras = []
    for i in lista:
        impressoras.append((i, i))
    
    return tuple(impressoras)

def lista_impressoras():
    '''
    Método para buscar as impressoras disponíveis para o sistema.
    O comando abaixo irá verificar quais impressoras estão configuradas
    no computador onde está rodando o sistema.
    '''
    # comando para listar o nome de todas as impressoras reconhecidas pelo comp    
    comando = "lpstat -p | egrep -i 'printer|impressora' | cut -d ' ' -f 2"
    saida = commands.getoutput(comando)
    saida = saida.split()
    
    impressoras = []
    for i in saida:
        impressoras.append((i, i))
        
    return tuple(impressoras)

class Impressora(models.Model):
    nome = models.CharField(u'Impressora', max_length=50)
    referencia = models.CharField(u'Referência', max_length=50, choices = impressoras_do_sistema())
    corte = models.NullBooleanField(u'Possui corte')
    colunas = models.IntegerField(u'Número de colunas', default = 50)
    descricao = models.TextField(u'Descrição', null = True, blank = True)
    
    def __unicode__(self):
        return self.nome
    